<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title></title>
	<script>

// 		window.requestNextAnimationFrame =
//    (function () {
//       var originalWebkitRequestAnimationFrame = undefined,
//           wrapper = undefined,
//           callback = undefined,
//           geckoVersion = 0,
//           userAgent = navigator.userAgent,
//           index = 0,
//           self = this;

//       // Workaround for Chrome 10 bug where Chrome
//       // does not pass the time to the animation function
      
//       if (window.webkitRequestAnimationFrame) {
//          // Define the wrapper

//          wrapper = function (time) {
//            if (time === undefined) {
//               time = +new Date();
//            }
//            self.callback(time);
//          };

//          // Make the switch
          
//          originalWebkitRequestAnimationFrame = window.webkitRequestAnimationFrame;    

//          window.webkitRequestAnimationFrame = function (callback, element) {
//             self.callback = callback;

//             // Browser calls the wrapper and wrapper calls the callback
            
//             originalWebkitRequestAnimationFrame(wrapper, element);
//          }
//       }

//       // Workaround for Gecko 2.0, which has a bug in
//       // mozRequestAnimationFrame() that restricts animations
//       // to 30-40 fps.

//       if (window.mozRequestAnimationFrame) {
//          // Check the Gecko version. Gecko is used by browsers
//          // other than Firefox. Gecko 2.0 corresponds to
//          // Firefox 4.0.
         
//          index = userAgent.indexOf('rv:');

//          if (userAgent.indexOf('Gecko') != -1) {
//             geckoVersion = userAgent.substr(index + 3, 3);

//             if (geckoVersion === '2.0') {
//                // Forces the return statement to fall through
//                // to the setTimeout() function.

//                window.mozRequestAnimationFrame = undefined;
//             }
//          }
//       }
      
//       return window.requestAnimationFrame   ||
//          window.webkitRequestAnimationFrame ||
//          window.mozRequestAnimationFrame    ||
//          window.oRequestAnimationFrame      ||
//          window.msRequestAnimationFrame     ||

//          function (callback, element) {
//             var start,
//                 finish;


//             window.setTimeout( function () {
//                start = +new Date();
//                callback(start);
//                finish = +new Date();

//                self.timeout = 1000 / 60 - (finish - start);

//             }, self.timeout);
//          };
//       }
//    )
// ();


	// function A(){


	// 	var _this = this;
	// 	window.requestNextAnimationFrame(this.f.bind(this));

	// }
	// A.prototype.f = function(){

	// 	// console.log(this);

	// 	this.f1();
	// 	window.requestNextAnimationFrame(this.f.bind(this));


	// }
	// A.prototype.f1 = function(){
	// 	console.log('333');
	// }

	// new A();

	// function s(){

	// 	console.log('ssss');

	// 	window.requestNextAnimationFrame(s);

	// }

	// window.requestNextAnimationFrame(s);
  
function Qcanvas(){
    this.context = 1;
    Qlayer.prototype  = this;
    this.g = new Qlayer(this);
    this.g.qf();
    console.log(this.g.context);
    console.log(this.g);
}

Qcanvas.prototype.qf = function(){
  console.log('qf');
}

function Qlayer(){
  this.context = 2;  

} 
// Qlayer.prototype = new Qcanvas();




var q = new Qcanvas();
console.log(q.context);



		

	</script>
	
</head>
<body>

</body>
</html>